/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package fr.monVehicule.coordination.ajouter.entretiens;

import fr.monVehicule.dao.ajouter.ActionEntretienDAO;
import fr.monVehicule.dao.ajouter.EntretienDAO;
import fr.monVehicule.entite.ActionEntretient;
import fr.monVehicule.entite.Entretient;
import fr.monVehicule.entite.Vehicule;
import fr.monVehicule.presentation.entretients.EntretienForm;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;

/**
 *
 * @author David
 */
public class AjoutEntretienProcessus {

    private Entretient entretien;
    private Set<ActionEntretient> listAction;
    private Vehicule vehicule;

    public AjoutEntretienProcessus(int idVehicule, EntretienForm form) {
        vehicule = new Vehicule();
        vehicule.setId(idVehicule);
        entretien = new Entretient();
        entretien.setVehicule(vehicule);
        SimpleDateFormat parseFormatter = new SimpleDateFormat("yyyy-MM-dd");
        Date dateE;
        try {
            dateE = parseFormatter.parse(form.getDateEntretien());
            entretien.setDate(dateE);
        } catch (ParseException ex) {
            entretien.setDate(new Date());

        }

        entretien.setLibelle(form.getLibelle());
        entretien.setGarage(form.getGarage());
        entretien.setPrix(Double.parseDouble(form.getPrix()));
        entretien.setFait(true);
        entretien.setKilometrage(Integer.parseInt(form.getKilometrage()));
        //Actions entretien
        if (form.getListAction() != null) {
            listAction = new HashSet<ActionEntretient>();
            for (String action : form.getListAction()) {
                ActionEntretient acE = new ActionEntretient();
                acE.setAction(action);
                listAction.add(acE);
            }
        }

    }

    public void execute() {
        //TODO dao
        EntretienDAO entretienDao = new EntretienDAO();
        Integer entId = entretienDao.saveEntretient(entretien);
        Entretient ent = entretienDao.findEntretienById(entId);
        ActionEntretienDAO actionDAO = new ActionEntretienDAO();
        actionDAO.saveActionEntretien(listAction, entretien);
        
    }
}
